(defun split_l (l)
  (cond
	((null l) (cons nil nil))
	((null (rest l)) (cons (list (first l)) nil))
	(T (let ((r (split_l (rest (rest l)))))
		 (cons (cons (first l) (first r))
			   (cons (first (rest l)) (rest r)))))))

(let* ((l nil) (r (split_l l)))
  (print l)
  (print (first r))
  (print (rest r)))
(print "")
(let* ((l '(1)) (r (split_l l)))
  (print l)
  (print (first r))
  (print (rest r)))
(print "")
(let* ((l '(1 2)) (r (split_l l)))
  (print l)
  (print (first r))
  (print (rest r)))
(print "")
(let* ((l '(1 2 3)) (r (split_l l)))
  (print l)
  (print (first r))
  (print (rest r)))
(print "")
(let* ((l '(1 2 3 4)) (r (split_l l)))
  (print l)
  (print (first r))
  (print (rest r)))
(print "")
